home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 22 / AMUG_22-1.ISO / Files / Internet / Java / ET Applets 1.1.sit / ET Applets 1.1 / Common / ET_FadeText.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-08-01  |  7.0 KB  |  265 lines  |  [TEXT/ttxt]

  1. import java.applet.Applet;
  2. import java.awt.Color;
  3. import java.awt.Component;
  4. import java.awt.Dimension;
  5. import java.awt.Event;
  6. import java.awt.Font;
  7. import java.awt.FontMetrics;
  8. import java.awt.Graphics;
  9. import java.awt.Image;
  10. import java.net.MalformedURLException;
  11. import java.net.URL;
  12. import java.util.Vector;
  13.  
  14. public final class ET_FadeText extends Applet implements Runnable {
  15.    Image offScreenImage;
  16.    Dimension offScreenSize;
  17.    Graphics offScreenGraphics;
  18.    static final int SLEEPTIME = 50;
  19.    private Thread kicker;
  20.    static final boolean REG_VERSION = false;
  21.    // $FF: renamed from: RT java.lang.String
  22.    static final String field_0 = "(This applet is not for commercial use. Visit http://www.entanke.se/ for information and more applets.)";
  23.    static final String APPLETINFO = "ET FadeText v1.1. Visit http://www.entanke.se/ for information and more applets.";
  24.    static final String DEF_TEXT = "No TEXT parameter given.";
  25.    static final int DEF_FROMCOLOR = 16777215;
  26.    static final int DEF_TOCOLOR = 0;
  27.    static final int DEF_BGCOLOR = 16777215;
  28.    static final int DEF_STARTDELAY = 0;
  29.    static final int DEF_FADETIME = 500;
  30.    static final String DEF_FONTNAME = "TimesRoman";
  31.    static final int DEF_FONTSIZE = 13;
  32.    static final int DEF_FONTSTYLE = 0;
  33.    static final URL DEF_URL = null;
  34.    static final String DEF_TARGETFRAME = "_self";
  35.    static final String DEF_ALT = null;
  36.    static final String DEF_REPEAT = "true";
  37.    Vector parText = new Vector();
  38.    Vector parFromColor = new Vector();
  39.    Vector parToColor = new Vector();
  40.    Vector parStartDelay = new Vector();
  41.    Vector parFadeTime = new Vector();
  42.    Vector parFont = new Vector();
  43.    Vector parColors = new Vector();
  44.    Integer parBGColor;
  45.    URL parURL;
  46.    String parTargetFrame;
  47.    String parALT;
  48.    boolean parRepeat;
  49.    String status = "";
  50.  
  51.    public void init() {
  52.       Dimension var1 = ((Component)this).size();
  53.       if (this.offScreenImage == null) {
  54.          this.offScreenImage = ((Component)this).createImage(var1.width, var1.height);
  55.          this.offScreenSize = var1;
  56.          this.offScreenGraphics = this.offScreenImage.getGraphics();
  57.       }
  58.  
  59.       this.parURL = this.getURLParameter("URL", (URL)null);
  60.       this.parTargetFrame = this.getStringParameter("TargetFrame", "_self");
  61.       this.parALT = this.getStringParameter("ALT", (String)null);
  62.       this.parRepeat = Boolean.valueOf(this.getStringParameter("Repeat", "true"));
  63.       boolean var2 = true;
  64.  
  65.       for(int var3 = 1; var2; ++var3) {
  66.          if (var3 == 1) {
  67.             this.parText.addElement(this.getStringParameter("Text1", "No TEXT parameter given."));
  68.             this.parFromColor.addElement(this.getIntegerParameter("FromColor1", new Integer(16777215), 16));
  69.             this.parToColor.addElement(this.getIntegerParameter("ToColor1", new Integer(0), 16));
  70.             this.parStartDelay.addElement(this.getIntegerParameter("StartDelay1", new Integer(0), 10));
  71.             this.parFadeTime.addElement(this.getIntegerParameter("FadeTime1", new Integer(500), 10));
  72.             this.parFont.addElement(this.getFontParameter("FontName1", "FontStyle1", "FontSize1", new Font("TimesRoman", 0, 13)));
  73.          } else {
  74.             String var4 = "ToColor" + var3;
  75.             if (this.getIntegerParameter(var4, new Integer(-1), 16) != -1) {
  76.                this.parText.addElement(this.getStringParameter("Text" + var3, (String)this.parText.elementAt(var3 - 2)));
  77.                this.parFromColor.addElement(this.getIntegerParameter("FromColor" + var3, (Integer)this.parToColor.elementAt(var3 - 2), 16));
  78.                this.parToColor.addElement(this.getIntegerParameter("ToColor" + var3, (Integer)this.parFromColor.elementAt(var3 - 2), 16));
  79.                this.parStartDelay.addElement(this.getIntegerParameter("StartDelay" + var3, (Integer)this.parStartDelay.elementAt(var3 - 2), 10));
  80.                this.parFadeTime.addElement(this.getIntegerParameter("FadeTime" + var3, (Integer)this.parFadeTime.elementAt(var3 - 2), 10));
  81.                this.parFont.addElement(this.getFontParameter("FontName" + var3, "FontStyle" + var3, "FontSize" + var3, (Font)this.parFont.elementAt(var3 - 2)));
  82.             } else {
  83.                var2 = false;
  84.             }
  85.          }
  86.       }
  87.  
  88.       int var5 = (Integer)this.parFromColor.elementAt(0);
  89.       this.parBGColor = this.getIntegerParameter("BGColor", new Integer(var5), 16);
  90.       if (this.parALT != null) {
  91.          this.status = this.parALT;
  92.       }
  93.  
  94.       this.status = this.status + "  " + "(This applet is not for commercial use. Visit http://www.entanke.se/ for information and more applets.)";
  95.    }
  96.  
  97.    private Integer getIntegerParameter(String var1, int var2, int var3) {
  98.       return this.getIntegerParameter(var1, new Integer(var2), var3);
  99.    }
  100.  
  101.    private Integer getIntegerParameter(String var1, Integer var2, int var3) {
  102.       String var4 = ((Applet)this).getParameter(var1);
  103.  
  104.       try {
  105.          Integer var5 = new Integer(Integer.parseInt(var4, var3));
  106.          return var5;
  107.       } catch (NumberFormatException var6) {
  108.          return var2;
  109.       }
  110.    }
  111.  
  112.    private String getStringParameter(String var1, String var2) {
  113.       String var3 = ((Applet)this).getParameter(var1);
  114.       return var3 == null ? var2 : var3;
  115.    }
  116.  
  117.    private URL getURLParameter(String var1, URL var2) {
  118.       String var3 = this.getStringParameter(var1, (String)null);
  119.  
  120.       try {
  121.          URL var4 = new URL(((Applet)this).getDocumentBase(), var3);
  122.          return var4;
  123.       } catch (MalformedURLException var5) {
  124.          return var2;
  125.       }
  126.    }
  127.  
  128.    private Font getFontParameter(String var1, String var2, String var3, Font var4) {
  129.       String var5 = this.getStringParameter(var1, var4.getName());
  130.       String var6 = this.getStringParameter(var2, "");
  131.       int var7 = var4.getSize();
  132.       var7 = this.getIntegerParameter(var3, new Integer(var7), 10);
  133.       int var8 = var4.getStyle();
  134.       if (var6.equalsIgnoreCase("Plain")) {
  135.          var8 = 0;
  136.       }
  137.  
  138.       if (var6.equalsIgnoreCase("Bold")) {
  139.          var8 = 1;
  140.       }
  141.  
  142.       if (var6.equalsIgnoreCase("Italic")) {
  143.          var8 = 2;
  144.       }
  145.  
  146.       if (var6.equalsIgnoreCase("BoldItalic")) {
  147.          var8 = 3;
  148.       }
  149.  
  150.       return new Font(var5, var8, var7);
  151.    }
  152.  
  153.    public String getAppletInfo() {
  154.       return "ET FadeText v1.1. Visit http://www.entanke.se/ for information and more applets.";
  155.    }
  156.  
  157.    public void start() {
  158.       if (this.kicker == null) {
  159.          this.kicker = new Thread(this);
  160.          this.kicker.start();
  161.       }
  162.  
  163.       ((Applet)this).showStatus("ET FadeText v1.1. Visit http://www.entanke.se/ for information and more applets.");
  164.    }
  165.  
  166.    public void stop() {
  167.       if (this.kicker != null && this.kicker.isAlive()) {
  168.          this.kicker.stop();
  169.       }
  170.  
  171.       this.kicker = null;
  172.    }
  173.  
  174.    public void destroy() {
  175.       this.kicker = null;
  176.    }
  177.  
  178.    public final void update(Graphics var1) {
  179.       var1.drawImage(this.offScreenImage, 0, 0, this);
  180.    }
  181.  
  182.    public final void paint(Graphics var1) {
  183.       var1.drawImage(this.offScreenImage, 0, 0, this);
  184.    }
  185.  
  186.    public boolean handleEvent(Event var1) {
  187.       switch (var1.id) {
  188.          case 502:
  189.             if (this.parURL != null) {
  190.                ((Applet)this).getAppletContext().showDocument(this.parURL, this.parTargetFrame);
  191.             }
  192.  
  193.             return true;
  194.          case 503:
  195.          default:
  196.             return super.handleEvent(var1);
  197.          case 504:
  198.             ((Applet)this).showStatus(this.status);
  199.             return true;
  200.          case 505:
  201.             ((Applet)this).showStatus("");
  202.             return true;
  203.       }
  204.    }
  205.  
  206.    public void run() {
  207.       this.offScreenGraphics.setColor(new Color(this.parBGColor));
  208.       this.offScreenGraphics.fillRect(0, 0, this.offScreenSize.width, this.offScreenSize.height);
  209.       Graphics var2 = ((Component)this).getGraphics();
  210.       var2.drawImage(this.offScreenImage, 0, 0, this);
  211.  
  212.       do {
  213.          for(int var5 = 0; var5 < this.parText.size(); ++var5) {
  214.             this.delay((Integer)this.parStartDelay.elementAt(var5));
  215.             if (var5 >= this.parColors.size()) {
  216.                this.parColors.addElement(this.makeColors((Integer)this.parFromColor.elementAt(var5), (Integer)this.parToColor.elementAt(var5), (Integer)this.parFadeTime.elementAt(var5)));
  217.             }
  218.  
  219.             this.offScreenGraphics.setFont((Font)this.parFont.elementAt(var5));
  220.             FontMetrics var1 = this.offScreenGraphics.getFontMetrics(this.offScreenGraphics.getFont());
  221.             int var3 = (((Component)this).size().width - var1.stringWidth((String)this.parText.elementAt(var5))) / 2;
  222.             int var4 = (((Component)this).size().height + var1.getHeight() / 2) / 2;
  223.             this.fade((Vector)this.parColors.elementAt(var5), (Integer)this.parFadeTime.elementAt(var5), var3, var4, (String)this.parText.elementAt(var5));
  224.          }
  225.       } while(this.parRepeat);
  226.  
  227.    }
  228.  
  229.    private Vector makeColors(int var1, int var2, int var3) {
  230.       Vector var4 = new Vector();
  231.       int var5 = ((var2 & 16711680) >> 16) - ((var1 & 16711680) >> 16);
  232.       int var6 = ((var2 & '\uff00') >> 8) - ((var1 & '\uff00') >> 8);
  233.       int var7 = (var2 & 255) - (var1 & 255);
  234.       int var8 = (var1 & 16711680) >> 16;
  235.       int var9 = (var1 & '\uff00') >> 8;
  236.       int var10 = var1 & 255;
  237.  
  238.       for(int var11 = 0; var11 < var3 + 50; var11 += 50) {
  239.          var4.addElement(new Color(var8 + var5 * var11 / var3, var9 + var6 * var11 / var3, var10 + var7 * var11 / var3));
  240.       }
  241.  
  242.       return var4;
  243.    }
  244.  
  245.    private void fade(Vector var1, int var2, int var3, int var4, String var5) {
  246.       for(int var6 = 0; var6 < var2 + 50; var6 += 50) {
  247.          this.offScreenGraphics.setColor(new Color(this.parBGColor));
  248.          this.offScreenGraphics.fillRect(0, 0, this.offScreenSize.width, this.offScreenSize.height);
  249.          this.offScreenGraphics.setColor((Color)var1.elementAt(var6 / 50));
  250.          this.offScreenGraphics.drawString(var5, var3, var4);
  251.          Graphics var7 = ((Component)this).getGraphics();
  252.          var7.drawImage(this.offScreenImage, 0, 0, this);
  253.          this.delay(50);
  254.       }
  255.  
  256.    }
  257.  
  258.    private void delay(int var1) {
  259.       try {
  260.          Thread.sleep((long)var1);
  261.       } catch (InterruptedException var2) {
  262.       }
  263.    }
  264. }
  265.